import { get } from '../api/index';
import { ossPath } from './index';

class Wechat {
  static async init() {
    const config = await Wechat._getConfig();
    if (config) Wechat._setConfig(config);
  }

  /**
   * 获取微信授权信息
   * @returns {Promise} 权限验证配置
   */
  private static async _getConfig() {
    try {
      const _api = 'https://app.gov.shencom.cn/service-uaa/wechat/jsconfig?scid=sc8820513B9B1903E4';
      const { data } = await get(_api);
      return data;
    } catch (error) {
      console.error('获取微信授权失败: ', error);
      return null;
    }
  }

  /**
   * 加载微信权限配置
   * @returns {Promise} 是否加载成功
   */
  private static _setConfig(config: wx.ConfigOptions): Promise<boolean> {
    const shareConfig: wx.shareDataOptions = {
      // 分享标题
      title: '特区40年，细数罗湖故事',
      // 分享描述
      desc: '快来围观吧！',
      //  分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      link: window.location.href,
      // 分享图标
      imgUrl: `${ossPath}/images/wx_share.png`,
      // 设置成功
      success: () => {},
    };

    return new Promise((resolve) => {
      wx.config({ debug: false, ...config });
      wx.ready(() => {
        wx.updateAppMessageShareData(shareConfig);
        wx.updateTimelineShareData(shareConfig);
        wx.onMenuShareWeibo(shareConfig);
        resolve(true);
      });
      wx.error((err) => {
        console.error('初始化微信配置失败: ', err);
        resolve(false);
      });
    });
  }
}

export default Wechat;
